1. Field of the Invention
The present invention relates to a method, system, and program for using multiple sidefiles to buffer writes to primary storage volumes to transfer to corresponding secondary storage volumes in a mirror relationship.
2. Description of the Related Art
Disaster recovery systems typically address two types of failures, a sudden catastrophic failure at a single point in time or data loss over a period of time. In the second type of gradual disaster, updates to volumes may be lost. To assist in recovery of data updates, a copy of data may be provided at a remote location. Such dual or shadow copies are typically made as the application system is writing new data to a primary storage device. Different copy technologies may be used for maintaining remote copies of data at a secondary site, such as International Business Machine Corporation's (“IBM”) Extended Remote Copy (XRC), Coupled XRC (CXRC), Global Copy, and Global Mirror Copy.
In data mirroring systems, data is maintained in volume pairs. A volume pair is comprised of a volume in a primary storage device and a corresponding volume in a secondary storage device that includes an identical copy of the data maintained in the primary volume. Primary and secondary storage controllers may be used to control access to the primary and secondary storage devices.
A primary storage controller may manage multiple volumes in the primary storage. Volumes in the primary storage may be assigned to a session, which may be in a mirror copy relationship with secondary volumes maintained at a secondary storage controller. In current systems, the primary storage controller maintains one sidefile for each session to buffer updates to data in the primary volumes in the session to mirror to corresponding secondary volumes in the mirror relationship. A system data mover that runs in a host system may spawn a process for each sidefile in the primary storage controller to read updates for the session from the sidefile and transfer those updates to the corresponding secondary volumes.
There may be many write streams creating record sets in a single sidefile, but only one read stream to read the entries back out to transfer to the secondary file system. As the size of volumes is increased and number of Input/Output (I/O) requests increases, there may be many write streams to even a single device. This can cause a disparity between the rate at which sidefile entries are created and the rate at which they are read and removed, resulting in the sidefile size increasing. Eventually, the size may reach a point where it is necessary to either slow down the write rate to the primary volumes in the session associated with the sidefile or suspend the session.
Write pacing or device blocking may be used to limit the rate at which writes are allowed and the sidefile is filled to balance the reads. Suspending the session may cause the mirroring operations to stop for some period of time until later resumed after the peak write rate period has ended.
One technique to balance the read and write streams involves providing multiple sessions for a set of volumes, also known as a logical subsystem (LSS). The system data mover may then maintain a separate reader for each of these physical sessions comprising a portion of the primary volumes in the LSS. Each session for a portion of the LSS has a separate sidefile and reads from separate sidefiles may be performed in parallel.
There is a need in the art to provide improved techniques for provisioning sidefiles to use to mirror updates to a primary volume to a secondary volume.